package com.meimeixia.pattern.singleton.demo2;

/**
 * 单例模式
 * 饿汉式：静态代码块
 *
 * @author: t-zhijiang.zhao
 * @date: 2024/10/8 下午3:00
 */
public class Singleton {
    /*  私有构造方法：私有构造方法其实就是为了让外界不能创建该类的对象
        在成员位置声明一个该类的成员变量，不过不要给其赋值
        在静态代码块中进行赋值
        对外提供一个公共的访问方式，让外界获取该对象
        */

    /**
     * 私有构造方法
     */
    private Singleton() {}

    /**
     * 声明Singleton类型的变量
     */
    private static Singleton instance;

    /**
     * 在静态代码块中进行赋值
     */
    static {
        instance = new Singleton();
    }

    /**
     * 对外提供获取该类对象的方法
     * @return
     */
    public static Singleton getInstance() {
        return instance;
    }
}
